package com.salelogistics.sale.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.salelogistics.sale.domain.SmsBatchPlan;
import com.salelogistics.sale.domain.SmsDeliveryPlan;
import com.salelogistics.sale.domain.dto.DeliveryPlanDetailsDto;

/**
 * 计划分批Mapper接口
 *
 * @author Hu Kangying
 * @date 2023-07-21
 */
public interface SmsBatchPlanMapper extends BaseMapper<SmsBatchPlan> {
    /**
     * 查询计划分批
     *
     * @param serialId 计划分批主键
     * @return 计划分批
     */
    public SmsBatchPlan selectSmsBatchPlanBySerialId(Long serialId);

    /**
     * 查询计划分批列表
     *
     * @param smsBatchPlan 计划分批
     * @return 计划分批集合
     */
    public List<SmsBatchPlan> selectSmsBatchPlanList(SmsBatchPlan smsBatchPlan);

    /**
     * 新增计划分批
     *
     * @param smsBatchPlan 计划分批
     * @return 结果
     */
    public int insertSmsBatchPlan(SmsBatchPlan smsBatchPlan);

    /**
     * 修改计划分批
     *
     * @param smsBatchPlan 计划分批
     * @return 结果
     */
    public int updateSmsBatchPlan(SmsBatchPlan smsBatchPlan);

    /**
     * 删除计划分批
     *
     * @param serialId 计划分批主键
     * @return 结果
     */
    public int deleteSmsBatchPlanBySerialId(Long serialId);

    /**
     * 批量删除计划分批
     *
     * @param serialIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSmsBatchPlanBySerialIds(Long[] serialIds);

    List<DeliveryPlanDetailsDto> queryBatchPlanDetailsWithPlanId(Long planId);

    List<DeliveryPlanDetailsDto> selectBatchDetailsByBatchId(Long planId);
}
